#pragma once

#include <vector>

DOUBLE CalcMatchResidueRmsd(CSTLVectorValueArray & m_atomPosArrayCa1, CSTLLONGArray & matchResidue1, CSTLVectorValueArray & m_atomPosArrayCa2, CSTLLONGArray & matchResidue2 , INT32 nMatch , D3DXMATRIX &transform );
DOUBLE CalcMatchResidueRmsd(CSTLVectorValueArray & arrayPos1, CSTLVectorValueArray & arrayPos2, D3DXMATRIX &transform );

DOUBLE GetLocalSuperImposeTransform( IN CSTLVectorValueArray & arrayPos1, IN CSTLLONGArray & matchIndex1, IN CSTLVectorValueArray & arrayPos2, IN CSTLLONGArray & matchIndex2, INT32 nMatch, OUT D3DXMATRIX &transform , BOOL bCalcRMSD = FALSE );
DOUBLE GetLocalSuperImposeTransform( IN CVectorArray & arrayPos1, IN INT32 iBegin1 , IN CVectorArray	& arrayPos2, IN INT32 iBegin2, IN INT32 nAtom , OUT D3DXMATRIX &transform );
DOUBLE GetLocalSuperImposeTransform( IN CSTLArrayVector & arrayPos1, IN INT32 iBegin1 , IN CSTLArrayVector	& arrayPos2, IN INT32 iBegin2, IN INT32 nAtom , OUT D3DXMATRIX &transform );

